package com.bingxue.edu.management.report.model.entity;

import com.bingxue.edu.framework.common.model.BaseEntity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.mybatisflex.core.handler.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "教师课时月报")
@Table("report_teacher_lesson_monthly")
public class MonthlyTeacherLesson extends BaseEntity {

    @Schema(description = "报表时间")
    private LocalDate reportDate;

    @Schema(description = "主讲老师id")
    private String leadTeacherId;

    @Schema(description = "辅导老师id")
    private String assistTeacherId;

    @Schema(description = "班级id")
    private String classId;

    @Schema(description = "本月课次")
    private Integer lessonCount;

    @Schema(name = "课时业绩系数")
    private Double lessonHourFactor;

    @Schema(name = "签到详情")
    @Column(typeHandler = JacksonTypeHandler.class)
    private List<Integer> signInDetails;

    @Schema(name = "签到总人次")
    private Integer signInCount;

    @Schema(name = "满班总人次")
    private Integer fullClassCount;

    @Schema(name = "主讲老师课时费系数")
    private Double leadTeacherLessonPriceFactor;

    @Schema(name = "辅导老师课时费系数")
    private Double assistTeacherLessonPriceFactor;

    @Schema(name = "备注")
    private String remark;

    @Schema(name = "创建时间")
    private LocalDateTime createTime;

    @Column(ignore = true)
    private String subject;

    @Column(ignore = true)
    private Integer classLevel;
}
